import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Elternsprechtag
{
    public static void main(String[] args) throws IOException
    {
    	
        System.out.println("Programm für den Elternsprechtag am Gymanasium Dorfen");
        
        Elternsprechtag est = new Elternsprechtag();
        
        est.datenLaden();
        
        try {
            BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
            
            System.out.println("Vorname:");
            String vn = eingabe.readLine();
            System.out.println("Nachname:");
            String nn = eingabe.readLine();
            System.out.println("Passwort:");
            String pw = eingabe.readLine();
            
            if(vn.equals("Administrator") && nn.equals("Administrator"))
            {
            	BufferedReader pwreader = new BufferedReader(new FileReader("Admin.txt"));
            	if(pw.equals(pwreader.readLine()))
            	{
            		
            		System.out.println("Angemeltet als: Administrator");
            		boolean ende = false;
            		while(!ende)
            		{
            			switch(eingabe.readLine())
            			{
            				case "neu":
            					System.out.println("neuen Lehrer erstellen:");
            					est.lehrersp(eingabe.readLine(), eingabe.readLine(), eingabe.readLine(), eingabe.readLine());
            					System.out.println("Lehrer erfolgreich erstellt!");
            					break;
            				case "info": est.lehrerHolen(eingabe.readLine(), eingabe.readLine()).infoAusgeben(); break;
            				case "quit": ende = true;
            					est.datenSichern();
            			}
            		}
            	}
            	pwreader.close();
            } else {
            
            if((est.lehrerHolen(vn, nn) != null) && (est.lehrerHolen(vn, nn).pwIstGleich(pw)))
            {
            	System.out.println("Angemeltet als: Lehrer");
                boolean ende = false;
                while(!ende)
                {
                    switch(eingabe.readLine())
                    {
                    	case "ich": est.lehrerHolen(vn, nn).infoAusgeben(); break;
                        case "quit": ende = true;
                        	est.datenSichern(); break;
                    }
                }
            }}
            
        } catch (IOException ex) {
            Logger.getLogger(Elternsprechtag.class.getName()).log(Level.SEVERE, null, ex);
        }
        
                
        System.out.println("Programm beendet!");
    }
    
	//Attribute
	private Lehrerverwaltung lehrerv;
	private Schuelerverwaltung schuelerv;
	
	//Konstruktor
	public Elternsprechtag()
	{
		lehrerv = Lehrerverwaltung.lvGeben();
		//schuelerv = Schuelerverwaltung.svGeben();
		//erstellt die 2 singelnton objekte Lehrerverwaltung(lv) und Schuelerverwaltung(sv) ueber ihre static methoden
		//to be continued
	}
	
	//gibt Schueler aus
	public Schueler schuelerHolen(String n)
	{
		schuelerv.schuelerHolen(n);
	}
	
	//gibt Lehrer aus
	public Lehrer lehrerHolen(String vn, String nn)
	{
		return lehrerv.lehrerHolen(vn, nn);
	}
	
	//speichert alle Sch�ler ab
	public void schuelersp(String n)
	{
		schuelerv.schuelersp(n);
	}
	
	//speichert alle Lehrer ab
	public void lehrersp(String vn, String nn, String kl, String raum)
	{
		lehrerv.lehrerSpeichern(vn, nn, kl, raum);
        }
        
        public void terminBuchen(String lehrervn, String lehrernn, Schueler schueler, int zeit)
        {
            lehrerv.terminBuchen(lehrervn, lehrernn, schueler, zeit);
        }
        
        public void terminSperren(String lehrervn, String lehrernn, int zeit)
        {
            lehrerv.terminSperren(lehrervn, lehrernn, zeit);
        }
        
        public void datenSichern()
        {
            lehrerv.lehrerSichern();
            //schuelerv.schuelerSichern();
        }
        
        public void datenLaden()
        {
            lehrerv.lehrerLaden();
            lehrerv = Lehrerverwaltung.lvGeben();
            //Schuelerverwaltung.schuelerLaden();
        }
}